home *** CD-ROM | disk | FTP | other *** search
/ Joystick Magazine 1996 May / cd joy 71No13.iso / pc / demos / eurosoc / source / maths.cpp < prev    next >
C/C++ Source or Header  |  1996-03-05  |  2KB  |  76 lines

  1. /******************************************************************************
  2. *******************************************************************************
  3.  
  4. Maths routines...
  5.  
  6. ******************************************************************************
  7. *****************************************************************************/
  8.  
  9. #include "global.h"
  10.  
  11. #include "defines.h"
  12. #include "externs.h"
  13.  
  14. extern short *afr1;
  15. extern short *afr2;
  16.  
  17. /******************************************************************************
  18. *****************************************************************************/
  19.  
  20. //extern int matherr(struct exception *);
  21.  
  22. int matherr(struct exception *)
  23. {
  24.     keys[0x01]=1;            // Simulate escape.
  25.     return(0);
  26. }
  27.  
  28. /******************************************************************************
  29. *****************************************************************************/
  30.  
  31. void af_randomize()
  32. {
  33.     rand_seed=rand();
  34.  
  35.     seed=rand_seed&127;
  36. //    printf("%d\n",seed&15);
  37. }
  38.  
  39. /******************************************************************************
  40. *****************************************************************************/
  41.  
  42. void random_vector(float &a,float &b)
  43. {
  44.     double n;
  45.     signed short ang=(rand_seed&32767)<<1;
  46.     float ab=modf(((float)ang/PI),&n);
  47.     a=cos(ab);
  48.     b=sin(ab);
  49. }
  50.  
  51. /******************************************************************************
  52. *****************************************************************************/
  53.  
  54. // Returns a random value of ( 0 -> (Range-1) )
  55.  
  56. int rand_range(int range)
  57. {
  58.     int rs=(seed*range)/128;
  59.     return(rs);
  60. }
  61.  
  62. /******************************************************************************
  63. *****************************************************************************/
  64.  
  65. float calc_dist(float x,float y)
  66. {
  67.     float r;
  68.     r=sqrt((x*x)+(y*y));
  69.     if (r>0.1)
  70.         return(r);
  71.     else
  72.         return(0.1);
  73. }
  74.  
  75.  
  76.